/**
 * 
 */
package UDP_Server_Client;

import java.io.IOException;
import java.net.*;
/* Kullanıcıdan veri gönderip, almak için javanın i/o sınıflarını kullanıyoruz */
/**
 *
 * @author necmeddin
 * @version 1.0
 */
public class UDPServer {
    
    public static void main(String[] args) throws IOException{
      
       try { 

        /* Veri iletiminin yapılacağı soketi oluşturuyoruz */
        DatagramSocket serverSocket = new DatagramSocket(9876); 

        byte[] receiveData  = new byte[1024]; 
        byte[] sendData     = new byte[1024]; 
  
        // Sunucu sürekli dinlemede açık kalsın...
        while(true) 
        { 

            DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length); 

            System.out.println ("Gelecek veri paketlerini bekliyoruz...");

            // İstemciden paketleri alıyoruz
            serverSocket.receive(receivePacket); 
            String sentence = new String(receivePacket.getData()); 
          
            // Paketin geldiği adress  
            InetAddress IPAddress = receivePacket.getAddress(); 
            //Paket glediği port
            int port = receivePacket.getPort(); 

            System.out.println ("From: " + IPAddress + ":" + port);
            System.out.println ("Message: " + sentence);

            // İstemciden gelen string büyük harfe dönüştürülüyor.
            String capitalizedSentence = sentence.toUpperCase(); 
            sendData = capitalizedSentence.getBytes(); 

            // İstemciye cevabımızı gönderiyoruz.
            DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, port); 
            serverSocket.send(sendPacket); 

        } 

     }
      catch (SocketException e) {
        System.out.println("Sunucuya bi şeyler oldu; bunun gibi : "+e);
        System.exit(1);
      }
    } 
}
